home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Shareware Overload Trio 2
/
Shareware Overload Trio Volume 2 (Chestnut CD-ROM).ISO
/
dir41
/
timstk11.zip
/
DEMO.LST
< prev
next >
Wrap
File List
|
1993-04-01
|
11KB
|
288 lines
000001 0000 ; Main program
000002 0000 ;
000003 0000 ; 1424 min 1444 max 5 stack
000004 0000 ;
000005 0000 MAIN:
000006 0000 BD002A JSR SIMPLE
000007 0003 BD002F JSR FWDBRA
000008 0006 BD0044 JSR BCKBRA
000009 0009 BD005A JSR SIMPLOOP
000010 000C BD0061 JSR BACKLOOP
000011 000F BD006A JSR COMPLEX
000012 0012 BD0077 JSR INDJMP
000013 0015 BD007D JSR INSTIME
000014 0018 BD0081 JSR ILLEGAL
000015 001B BD0085 JSR OUTLOOP
000016 001E BD0097 JSR TWOLOOP
000017 0021 BD00A5 JSR VARLOOP
000018 0024 CE002A LDX #SIMPLE
000019 0027 AD00 JSR 0,X ; Use 0 cycles 0 stack
000020 0029 39 RTS
000021 002A ; Simple subroutine
000022 002A ;
000023 002A ; Contains no conditional branches.
000024 002A ;
000025 002A ; 11 min 11 max 0 stack
000026 002A ;
000027 002A SIMPLE:
000028 002A 40 NEGA
000029 002B 48 ASLA
000030 002C 8B05 ADDA #5
000031 002E 39 RTS
000032 002F ; Forward branches
000033 002F ;
000034 002F ; Contains only forward branches.
000035 002F ;
000036 002F ; 16 min 26 max 0 stack
000037 002F ;
000038 002F FWDBRA:
000039 002F 47 ASRA
000040 0030 2406 BCC FWD010
000041 0032 CE002A LDX #SIMPLE
000042 0035 47 ASRA
000043 0036 2405 BCC FWD020
000044 0038 FWD010:
000045 0038 CE002F LDX #FWDBRA
000046 003B 2006 BRA FWDRET
000047 003D FWD020:
000048 003D 47 ASRA
000049 003E 2403 BCC FWDRET
000050 0040 CE0044 LDX #BCKBRA
000051 0043 FWDRET:
000052 0043 39 RTS
000053 0044 ; Backward normal branches
000054 0044 ;
000055 0044 ; Contains only backward normal branches.
000056 0044 ;
000057 0044 ; 16 min 26 max 0 stack
000058 0044 ;
000059 0044 BCKBRA:
000060 0044 47 ASRA
000061 0045 2407 BCC BCK010
000062 0047 CE002A LDX #SIMPLE
000063 004A 47 ASRA
000064 004B 2406 BCC BCK020
000065 004D BCKRET:
000066 004D 39 RTS
000067 004E BCK010:
000068 004E CE002F LDX #FWDBRA
000069 0051 20FA BRA BCKRET
000070 0053 BCK020:
000071 0053 47 ASRA
000072 0054 24F7 BCC BCKRET
000073 0056 CE0044 LDX #BCKBRA
000074 0059 39 RTS
000075 005A ; Simple loop
000076 005A ;
000077 005A ; A simple loop.
000078 005A ;
000079 005A ; 42 min 42 max 0 stack
000080 005A ;
000081 005A SIMPLOOP:
000082 005A 8605 LDAA #5
000083 005C SIMP010:
000084 005C 01 NOP
000085 005D 4A DECA
000086 005E 26FC BNE SIMP010 ; TAKE 4
000087 0060 39 RTS
000088 0061 ; Loop with backwards branch
000089 0061 ;
000090 0061 ; A simple loop with a normal backwards
000091 0061 ; branch that terminates in the middle.
000092 0061 ;
000093 0061 ; 62 min 62 max 0 stack
000094 0061 ;
000095 0061 BACKLOOP:
000096 0061 8606 LDAA #6
000097 0063 BACK010:
000098 0063 4A DECA
000099 0064 2703 BEQ BACKRET
000100 0066 01 NOP
000101 0067 20FA BRA BACK010
000102 0069 BACKRET:
000103 0069 39 RTS
000104 006A ; Complex loop
000105 006A ;
000106 006A ; A loop that will trigger the
000107 006A ; complex loop message.
000108 006A ;
000109 006A ; 43 min 43 max 2 stack
000110 006A ;
000111 006A COMPLEX:
000112 006A 8605 LDAA #5
000113 006C COMPL1:
000114 006C 4A DECA
000115 006D 2704 BEQ COMPX1 ; FALL 2
000116 006F 4A DECA
000117 0070 26FA BNE COMPL1 ; TAKE 2
000118 0072 39 RTS
000119 0073 COMPX1:
000120 0073 BD0076 JSR COMPX2
000121 0076 COMPX2:
000122 0076 39 RTS
000123 0077 ; Indirect jump test
000124 0077 ;
000125 0077 ; Indirect jump that goes some place
000126 0077 ; and one that returns.
000127 0077 ;
000128 0077 ; 11 min 11 max 0 stack
000129 0077 ;
000130 0077 INDJMP:
000131 0077 6E00 JMP 0,X ; Destination JMPRET
000132 0079 01 NOP
000133 007A JMPRET:
000134 007A 38 PULX ; Pull return address
000135 007B 6E00 JMP 0,X ; Use indirect jump as RTS
000136 007D ; Instructions that can not be timed
000137 007D ;
000138 007D ; These instructions can not be timed.
000139 007D ;
000140 007D ; 8 min 8 max 0 stack
000141 007D ;
000142 007D INSTIME:
000143 007D 2701 BEQ INST010 ; May be skipped
000144 007F CF STOP ; Stop instruction
000145 0080 INST010:
000146 0080 39 RTS
000147 0081 ; Illegal instructions
000148 0081 ;
000149 0081 ; These are illegal in the demo.
000150 0081 ;
000151 0081 ; 8 min 8 max 0 stack
000152 0081 ;
000153 0081 ILLEGAL:
000154 0081 2701 BEQ ILL010 ; May be skipped
000155 0083 3D MUL
000156 0084 ILL010:
000157 0084 39 RTS
000158 0085 ; Outer loop
000159 0085 ;
000160 0085 ; The output loop of nested loops.
000161 0085 ;
000162 0085 ; 482 min 482 max 3 stack
000163 0085 ;
000164 0085 OUTLOOP:
000165 0085 8605 LDAA #5
000166 0087 OUT010:
000167 0087 36 PSHA
000168 0088 BD0090 JSR INLOOP
000169 008B 32 PULA
000170 008C 4A DECA
000171 008D 26F8 BNE OUT010 ; TAKE 4
000172 008F 39 RTS
000173 0090 ; Inner loop
000174 0090 ;
000175 0090 ; The inner loop of nested loops.
000176 0090 ;
000177 0090 ; 77 min 77 max 0 stack
000178 0090 ;
000179 0090 INLOOP:
000180 0090 860A LDAA #10
000181 0092 IN010:
000182 0092 01 NOP
000183 0093 4A DECA
000184 0094 26FC BNE IN010 ; TAKE 9
000185 0096 39 RTS
000186 0097 ; Two loops
000187 0097 ;
000188 0097 ; Two loops in one.
000189 0097 ;
000190 0097 ; 436 min 436 max 0 stack
000191 0097 ;
000192 0097 TWOLOOP:
000193 0097 CE0005 LDX #5
000194 009A TWO010:
000195 009A 01 NOP
000196 009B 860A LDAA #10
000197 009D TWO020:
000198 009D 01 NOP
000199 009E 4A DECA
000200 009F 26FC BNE TWO020 ; TAKE 49
000201 00A1 ;
000202 00A1 09 DEX
000203 00A2 26F6 BNE TWO010 ; TAKE 4
000204 00A4 ;
000205 00A4 39 RTS
000206 00A5 ; Variable loops
000207 00A5 ;
000208 00A5 ; Loops different number of times
000209 00A5 ;
000210 00A5 ; 211 min 211 max 2 stack
000211 00A5 ;
000212 00A5 VARLOOP:
000213 00A5 8605 LDAA #5
000214 00A7 BD00B4 JSR DIFSUB ; 30 cycles
000215 00AA 860A LDAA #10
000216 00AC BD00B4 JSR DIFSUB ; 55 cycles
000217 00AF 8614 LDAA #20
000218 00B1 7E00B4 JMP DIFSUB
000219 00B4 ;
000220 00B4 DIFSUB:
000221 00B4 4A DECA
000222 00B5 26FD BNE DIFSUB ; TAKE 19
000223 00B7 39 RTS
000224 00B8 ; Stack Imbalance
000225 00B8 ;
000226 00B8 ; Stack may become imbalanced
000227 00B8 ;
000228 00B8 ; 10 min 13 max 1 stack
000229 00B8 ;
000230 00B8 STKIMB:
000231 00B8 01 NOP
000232 00B9 2601 BNE STK010
000233 00BB 36 PSHA
000234 00BC STK010:
000235 00BC 39 RTS
000236 00BD .END
BACK010 =0063
BACKLOOP=0061
BACKRET =0069
BCK010 =004E
BCK020 =0053
BCKBRA =0044
BCKRET =004D
COMPL1 =006C
COMPLEX =006A
COMPX1 =0073
COMPX2 =0076
DIFSUB =00B4
FWD010 =0038
FWD020 =003D
FWDBRA =002F
FWDRET =0043
ILL010 =0084
ILLEGAL =0081
IN010 =0092
INDJMP =0077
INLOOP =0090
INST010 =0080
INSTIME =007D
JMPRET =007A
MAIN =0000
OUT010 =0087
OUTLOOP =0085
SIMP010 =005C
SIMPLE =002A
SIMPLOOP=005A
STK010 =00BC
STKIMB =00B8
TWO010 =009A
TWO020 =009D
TWOLOOP =0097
VARLOOP =00A5